Software has become a fundamental element in the development of most projects. In the past, for small and medium-sized installations, software development was under the control of a relatively small team who managed the overall software development strategy.
Today, however, difficulties arise for complex and large-sized organizations when heterogeneous teams work together, i.e. teams of different sizes, located in distant geographies, using multiple technologies, wherein several software developments are conducted in parallel and integrated in a common system, and for which the workflow of information is dynamically managed.
As an example of a complex project, it is useful to consider the “Space Program”. This program is of enormous complexity, and includes building and delivering component modules of the space station, delivering the modules to the site in space, assembling the modules, and training astronauts in the operation and maintenance of the assembled space station. The modules are distributed over many geographical sites in different countries of the world, and in space.
Another example of a complex project from the commercial arena is the creation of a global e-business service, or the transfer of the commercial activity of a large corporation to the worldwide market using the internet and e-commerce.
A further example is the organization of a large-scale sporting event, such as the Olympic Games. Among thousands of actions, the project includes delivering a technological infrastructure, computer system applications, telecommunications systems, and also training and deploying staffs, defining processes for the collection and dissemination of scores to the media for the duration of the sporting events, the whole project being conduct under very tight schedules.
Software Management is a recognized knowledge area in major industrial and commercial activities, and covers several management disciplines such as Project Management or Risk Management, each having its own tools and methods of analysis.
Another discipline of concern is Software Quality Management. Software Quality Management has been defined in the literature as being the concepts, methods, techniques, procedures, and standards for producing high-quality software products in an efficient and cost-effective manner.
Some Software Quality Management methodologies exist, such as the Capability Maturity Model (CMM) from the Software Engineering Institute (SEI) at Carnegie Mellon University in Pittsburgh, or the Rational Unified Process (RUP) from Rational Software Corporation in California.
However, none of the existing methods adequately address the complexity encountered in large-scale projects. Mature and accepted software quality management methodologies for large technology programs do not exist, nor do methods for the dynamic management and integration of the workflow.
Therefore, the present invention is directed towards solving these problems.